// admin/system/model/sys_role.go
package model

import (
	"time"
)

// SysRole 角色信息表
type SysRole struct {
	RoleID            int64      `json:"role_id" gorm:"column:role_id;primaryKey;autoIncrement;comment:角色ID"`
	RoleName          string     `json:"role_name" gorm:"column:role_name;size:30;not null;comment:角色名称"`
	RoleKey           string     `json:"role_key" gorm:"column:role_key;size:100;not null;comment:角色权限字符串"`
	RoleSort          int        `json:"role_sort" gorm:"column:role_sort;not null;comment:显示顺序"`
	DataScope         string     `json:"data_scope" gorm:"column:data_scope;size:1;default:'1';comment:数据范围（1：全部数据权限 2：自定数据权限 3：本部门数据权限 4：本部门及以下数据权限）"`
	MenuCheckStrictly bool       `json:"menu_check_strictly" gorm:"column:menu_check_strictly;default:true;comment:菜单树选择项是否关联显示"`
	DeptCheckStrictly bool       `json:"dept_check_strictly" gorm:"column:dept_check_strictly;default:true;comment:部门树选择项是否关联显示"`
	Status            string     `json:"status" gorm:"column:status;size:1;not null;comment:角色状态（0正常 1停用）"`
	DelFlag           string     `json:"del_flag" gorm:"column:del_flag;size:1;default:'0';comment:删除标志（0代表存在 2代表删除）"`
	CreateBy          string     `json:"create_by" gorm:"column:create_by;size:64;default:'';comment:创建者"`
	CreateTime        *time.Time `json:"create_time,omitempty" gorm:"column:create_time;comment:创建时间"`
	UpdateBy          string     `json:"update_by" gorm:"column:update_by;size:64;default:'';comment:更新者"`
	UpdateTime        *time.Time `json:"update_time,omitempty" gorm:"column:update_time;comment:更新时间"`
	Remark            *string    `json:"remark,omitempty" gorm:"column:remark;size:500;comment:备注"`
}

// 表名映射（如果模型名与表名不一致，需指定）
func (SysRole) TableName() string {
	return "sys_role"
}

type SysUser struct {
	UserID int `gorm:"column:user_id;primaryKey"`
	DeptID int `gorm:"column:dept_id"` // 关联部门表
}

func (SysUser) TableName() string {
	return "sys_user"
}
